package org.ourgrid.gridMonitor;

import java.io.IOException;

import org.ourgrid.gridMonitor.operations.PeerLocalOperation;

/**
 * 
 * This class works monitoring the Grid Monitor.
 * 
 * @author rafael
 *
 */

public class MonitorReconnection extends Thread{

	private int tipoMonitorado;
	private boolean ativa = false;
	
	public MonitorReconnection(int tipoMonitorado){
		this.tipoMonitorado = tipoMonitorado;
	}
	
	public void run(){
	    execute(9000);	
	}
	
	public void execute(int portaComunicacao){
		while(true){
            /*Envia mensagem de reconhecimento para o componente GridMonitor
            A porta 8000 é utilizada pelo componente do GM para receber requisições dos componentes da grade. */
      	    try {
      	    	if(!ativa){
				  PeerLocalOperation.connect(tipoMonitorado,portaComunicacao);
				  ativa = true;
      	    	}
			} catch (IOException e) {
                portaComunicacao++;
                ativa = false;
			}
		}		
	}
}
